namespace Xmef.Engine.Internal
{
    using System.Collections.Generic;
    using Xmef.Interfaces;

    internal interface IPluginConfigurationManager : IPluginHostService, IPluginIdentity, IContainer<IXmlPluginConfiguration>
    {
        void Load<T>(IPluginHost host);
        void Load<T>(IPluginHost host, IXmlPluginConfiguration plugin);
        void Unload<T>(IPluginHost host);
        void Unload<T>(IPluginHost host, IXmlPluginConfiguration plugin);

        IEnumerable<IXmlPluginConfiguration> Loaded { get; }

        IEnumerable<IPluginObject> Objects { get; }
    }
}

